Quality assurance test automation is the use of software applications (e.g., scripts) to run automated tests of other software applications (e.g., web application) in order to improve the level of quality of a software application. Many such quality assurance test automation software applications exist, and they share many qualities in order to be effective. For example, testing software is often capable of being used with multiple operating systems, multiple software languages, multiple web browsers and multiple web mobile browsers. Furthermore, a quality assurance test automation software application usually provides an integrated development environment (IDE) with: a graphical user interface (GUI) for recording a user's actions (e.g., as scripts) while using an application (e.g., web browser) and converting the recorded actions into various programming languages, a programming interface (e.g., a web driver) for developing and running recorded scripts on different applications (e.g., web or web mobile browsers), and application server(s) to allow for remote and distributed execution of test scripts in parallel on multiple platforms.
Test scripts are small programs used to test a software application. A software application can create, read, update, and delete software objects. For example a sales application may offer the option to create a customer account object. In testing, this task (e.g., create a customer account object) is usually performed by one test script, since the small test scripts are best suited to test only one functionality (for example one test script to create an account, one to read the account, one to update the account and one to delete it). The functions of an application that create, read, update and delete a software object are often referred to as the “CRUD” of the object. In testing software applications test scripts often search for specific elements (e.g., objects) of the application to interact with (for example, a web application element is a hypertext markup language (HTML) web page element). A test script can find these application elements using methods called locators. These locators' methods takes argument values (e.g., fixed predetermined values) for parameters to find the matching application elements. A parameter has an attribute and a value. Attributes are, for example, attributes of web application elements such as identifier (ID), name, class attributes, HTML tag name, Cascade Style Sheet (CCS), full or partial text links, and the like. Values are simply the values of the attribute. For example in the web element: <input class=“name” id=“name” type=“text” placeholder=“Enter name . . . ”/>, class is an attribute and name is the value of the class attribute. Regular Expressions (Regex) may be used to define a parameter's attribute and values. Queries are used by the locators to traverse a DOM and find specific application elements. Once an application element (e.g., web element) is found, a test script manipulates it and the results may be evaluated. When data for input into an input node of a DOM are required for a test (e.g., user password), the input data can be stored separately from the testing environment (e.g., in one or more central data storages) in a method known as Data Driven Testing (DDT).